Git LFS

研究了《0.0 Obsidian 介绍》高级玩法之后,我开始 0.0 Obsidian 介绍 “存一切”,直到我将一个 3.4GB 的视频加入 Vault 中,直接让 NAS 歇菜了……因为我使用 obsidian-git 进行笔记同步,在 NAS 上通过 Gitea 搭建了一个 Git Server 作为托管。而 git 在处理大文件时,性能开销是很大的,以至于 NAS 处理起来过于吃力。于是我想到了 Git LFS。

Git LFS 全称为 Git Large File Storage,是一个 git 扩展,由 GitHub 开发。它专门适用于包含大量二进制大文件的仓库。其核心思想为:将大文件保存至仓库之外(本地路径、S3 兼容存储),在主仓库中保存的是大文件的轻量级指针。这样 git 就回归它最擅长的工作了,不论加入多少大文件,git 仓库自身都足够小。


Git 的二进制文件管理策略

如果 Git 仓库中包含二进制文件,如果文件更新了,git 并不会对二进制做 diff 保存增量,而是会保存一份完整的二进制文件

假设向仓库中添加了一个 100MB 的文件,每修改提交一次,git repo 就增大 100MB。


安装

Git LFS 需要单独安装,我使用 Arch Linux,安装指令为:

sudo pacman -S git-lfs

Gitea 开启 Git LFS

幸运的是,Gitea 支持 LFS。

首先在 Gitea 的 Site Administration 中查看 LFS 功能是否开启:

Pasted image 20240204121115.png

Gitea 支持多种 LFS 后端,比如本地文件系统、S3 存储等。我的 Gitea 运行在 NAS 上,因此我选用本地文件系统即可。

网络资源


本文作者:Maeiee

本文链接:Git LFS

版权声明:如无特别声明,本文即为原创文章,版权归 Maeiee 所有,未经允许不得转载!


喜欢我文章的朋友请随缘打赏,鼓励我创作更多更好的作品!